"""
@staticmethod   修饰静态方法
@classmethod  修饰类方法

定义一个计算器类
    存在四个静态方法，用于计算四则运算
    存在1个平方根静态方法，算算数字的平方根  math.sqrt()
    外部编写一个测试函数，执行对应的方法，确保程序正常执行带异常处理
"""
import math


class Calc:

    # 加法
    @staticmethod
    def add(a,b):
        return a + b

    # 减法
    @staticmethod
    def substract(a,b):
        return a - b

    # 乘法
    @staticmethod
    def multiply(a,b):
        return a * b

    # 除法
    @staticmethod
    def divide(a,b):
        if b == 0:
            raise ZeroDivisionError
        return a / b

    # 平方根的方法
    @staticmethod
    def square_root(a):
        if a < 0:
            raise ArithmeticError
        return math.sqrt(a)


def test_Calc():
    try:
        print('3+5之和是：',Calc.add(3,5))
        print('5-3之差是:',Calc.substract(5,3))
        print('5*3的积是：:',Calc.multiply(5,3))
        print('5/3的商是：:',Calc.divide(5,3))

        print('4的平方根是:',Calc.square_root(4))

    except Exception as e:
        print(e)

test_Calc()



